// pages/user-contact/user-contact.js
const app = getApp()
const userDao = require('../../dao/userDao')
const util = require('../../utils/util.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    urlList: [
      '../../assets/ic_add.png'
    ]
  },

  uploadImage(filePathList, cloudList) {
    let that = this
    //1，把本地的临时文件，上传到云上
    if (filePathList.length > 0) {
      let time = new Date().getTime()
      let filePath = filePathList[0]
      console.log(filePath)
      wx.cloud.uploadFile({
        cloudPath: app.data.currentUser._id + '-' + time + '.png', // 上传至云端的路径
        filePath, // 小程序临时文件路径
        success: res => {
          console.log(res)
          filePathList.shift()
          cloudList.push(res.fileID)
          that.uploadImage(filePathList, cloudList)
        },
        fail: res => {
          console.log(res)
          wx.hideLoading()
          wx.showToast({
            title: '上传失败',
          })
        }
      })
    } else {
      console.log(cloudList)
      // 2，更新用户信息的，图片集合
      userDao.update(app.data.currentUser._id, {
        wxCode: cloudList[0]
      }).then(res => {
        console.log(res.stats)
        app.data.currentUser.wxCode = cloudList[0]
        util.setCache(app.keys.currentUser, app.data.currentUser)
        that.setData({
          urlList: cloudList
        })
        wx.hideLoading()
        wx.showToast({
          title: '保存成功',
        })
      }).catch(e => {
        wx.hideLoading()
        wx.showToast({
          title: '保存失败',
        })
      })
    }

  },

    /**
   * 保存按钮
   */
  formSubmit() {
    let list = this.data.urlList
    if (list.indexOf("../../assets/ic_add.png") != -1) {
      list.pop()
    }
    if (list.length > 0) {
      wx.showLoading({
        title: '上传中...'
      })
      this.uploadImage(list, [])
      // console.log(list)

    } else {
      wx.showToast({
        title: '请选择照片后上传',
        icon: 'none'
      })
    }

  },

  /**
   * 删除照片
   * @param {} e 
   */
  bindDelete(e) {
    this.data.urlList.splice(this.data.urlList.indexOf(e.detail.url), 1)
    //当删除最后一个的时候，把添加按钮，添加上去
    if (this.data.urlList.length == 0) {
      this.setData({
        urlList: this.data.urlList.concat(["../../assets/ic_add.png"])
      })
    }
  },

  /**
   * 1, 添加照片
   * 2, 查看照片
   * @param {} e 
   */
  bindAdd(e) {
    let src = e.detail.url
    if ('../../assets/ic_add.png' == src) {
      this.chooseImage()
    } else {
      console.log('look', src)
      wx.previewImage({
        current: src,
        urls: this.data.urlList // 需要预览的图片http链接列表
      })
    }
  },

  /**
   * 选择照片
   */
  chooseImage() {
    let that = this
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        console.log(res)
        that.data.urlList.unshift(res.tempFilePaths[0])
        if (that.data.urlList.length > 1) {
          that.data.urlList.pop()
        }
        //显示头像
        that.setData({
          urlList: that.data.urlList
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (app.data.currentUser.wxCode) {
      this.setData({
        urlList: [app.data.currentUser.wxCode]
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})